вказівки. Багатомодульне програмування.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Засоби системного програмування

Частина тексту файла

Засоби системного програмування ЛАБОРАТОРНА РОБОТА № 7. Багатомодульне програмування. Мета: Оволодіти навиками створення багатомодульних програм. Засвоїти правила взаємодії різних модулів. Багатомодульне програмування При роботі на мові Асемблер під багатомодульним програмуванням розуміють процес написання кількох процедур, підпрограм, у різних вихідних файлах з подальшим їх об’єднанням на етапі лінкування. Таке доцільно робити, коли: є необхідність компонування декількох програм написаних на різних мовах програмування (наприклад, для об’єднання потужності мов високого рівня та ефективності асемблера); програма, написана у вигляді одного модуля, може виявитись завеликою для асемблювання; окремі модулі можуть бути написані різними проектувальниками з метою подальшої інтеграції; з причини великого розміру Директива EXTRN має такий формат: EXTRN ім’я : тип [, … ] Можна призначити більше одного імені (до кінця рядка) або закодувати додаткові директиви EXTRN. В іншому асемблерному модулі відповідне ім’я повинно бути визначене і ідентифіковане як PUBLIC. Існують такі типи елементів: ABS, BYTE, WORD, DWORD, FAR, NEAR. Ім’я може бути визначене через EQU і повинно задовольняти реальному визначенню імені. Директива PUBLIC вказує асемблеру і компонувальнику, що адреса вказаного ідентифікатора є доступною з інших програм. Директива має такий формат: PUBLIC ідентифікатор [, … ] Можна призначити більше одного ідентифікатора (до кінця рядка) або закодувати додаткові директиви PUBLIC. Ідентифікатори можуть бути мітками (включаючи PROC-мітки), змінними або числами. Неправильними ідентифікаторами є імена регістрів та EQU-ідентифікатори, що призначають більш як двобайтні значення. Існує декілька способів компонування програм. Кожен з них характеризується одною або декількома такими рисами: директиви EXTRN і PUBLIC в якості міток; спільний кодовий сегмент - шляхом використання директиви PUBLIC в заголовку кодового сегменту кожної з програм, що компонуються; спільні дані. Використання директив EXTRN і PUBLIC в якості міток Програма, приведена нижче, складається з основної програми MAINPROG та підпрограми SUBMUL. Директива EXTRN в основній програмі визначає SUBMUL як точку входу в підпрограму. Підпрограма містить директиву PUBLIC, яка вказує компонувальнику на те, що точкою входу для виконання є мітка SUBMUL. Підпрограма перемножує вміст регістру AX (значення з поля даних PRICE) на вміст регістру BX (значення з поля даних QTY), при цьому результат операції буде розміщено в регістровій парі DX:AX (в даному випадку – 002E 4000). В підпрограмі відсутній сегмент даних, оскільки вона не визначає ніяких даних. *Примітка: Для успішного компонування компонувальник потребує знайти хоча б один стековий сегмент. В підпрограмі не визначено стекового сегменту, оскільки вона використовує ті ж самі стекові адреси, що й основна програма. Таким чином, стек, що визначається в основній програмі, є доступним і в підпрограмі. TITLE CALLMULL ;Головна програма EXTRN SUBMUL:FAR STACKSG SEGMENT PARA STACK 'Stack' DW 64 DUP(?) STACKSG ENDS DATASG SEGMENT PARA 'Data' QTY DW 0140H PRICE DW 2500H DATASG ENDS CODESG SEGMENT PARA 'Code' BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG,SS:STACKSG PUSH DS SUB AX,AX PUSH AX MOV AX,DATASG MOV DS,AX MOV AX,PRICE ;Занести вартість MOV BX,QTY ; і кількість CALL SUBMUL ;Викликати підпрограму RET BEGIN ENDP CODESG ENDS END BEGIN ТITLE SUBMUL ;Підпрограма множення CODESG SEGMENT PARA 'Code' SUBMUL PROC FAR ASSUME CS:CODESG PUBLIC SUBMUL MUL BX ;AX-вартість, BX-кількість RET ;Добуток в DX:AX SUBMUL ENDP CODESG ENDS END Використання спільного кодового сегменту В основній програмі та в усіх підпрограмах, що компонуються разом, необхідно використати атрибут PUBLIC в директиві SEGMENT: CODESG SEGMENT PARA PUBLIC 'CODE' В даному випадку з таблиці ідентифікаторів слідує, що узагальнен...
Антиботан аватар за замовчуванням

29.05.2014 21:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини